package cn.aitrox.ry.service.anno.api;

import cn.aitrox.ry.bean.CommonPageInfo;
import cn.aitrox.ry.bean.RespResult;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoResultExportInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoResultReadInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoResultSearchInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoResultSubmitInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoSeriesGetInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoUsersInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.AnnoYayInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.in.DeepzoomUrlInDto;
import cn.aitrox.ry.service.anno.dto.anno.result.out.AnnoResultDto;
import cn.aitrox.ry.service.anno.dto.anno.result.out.AnnoResultExportResultOutDto;
import cn.aitrox.ry.service.anno.dto.anno.result.out.DeepzoomUrlOutDto;
import cn.aitrox.ry.service.anno.dto.anno.result.out.SeriesGetResultDto;
import cn.aitrox.ry.service.anno.entity.AnnoResultEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface AnnoResultApi {

    @PostMapping(value = "/anno/result/series/get")
    RespResult<SeriesGetResultDto> seriesGet(@RequestBody AnnoSeriesGetInDto input);

    @PostMapping(value = "/anno/result/read/")
    RespResult<AnnoResultDto> read(@RequestBody AnnoResultReadInDto input);

    @PostMapping(value = "/anno/result/yay")
    RespResult yay(@RequestBody AnnoYayInDto input);

    @PostMapping(value = "/anno/result/submit")
    RespResult submit(@RequestBody AnnoResultSubmitInDto input);

    @PostMapping(value = "/anno/result/users")
    RespResult<List<Integer>> annoUsers(@RequestBody AnnoUsersInDto input);

    @PostMapping(value = "/anno/result/search")
    CommonPageInfo<AnnoResultEntity> search(@RequestBody AnnoResultSearchInDto input);

    @PostMapping(value = "/anno/result/export")
    AnnoResultExportResultOutDto export(@RequestBody AnnoResultExportInDto input);

    @PostMapping(value = "/anno/result/deepzoom/url")
    RespResult<DeepzoomUrlOutDto> deepzoomUrl(@RequestBody DeepzoomUrlInDto input);
}
